#include <iostream>
#include"head.h"
void Menu(Node* phead)
{
	while(1)
	{
	    system("CLS");
    	printf("\n\t\t   教职工管理软件");
	    printf("\n\t\t--------------------");
	    printf("\n\t\t   1 数据输入");
	    printf("\n\t\t   2 数据输出");
		printf("\n\t\t   3 数据统计");
		printf("\n\t\t   4 数据查询");
		printf("\n\t\t   5 数据插入");
		printf("\n\t\t   6 数据删除");
		printf("\n\t\t   7 数据修改");
		printf("\n\t\t   8 工资计算");
		printf("\n\t\t   9 打印表格");
		printf("\n\t\t   0 退出");
		printf("\n\t\t--------------------");
		printf("\n\t\t   请选择(0-8): ");

		char option[0];
		while(1){

			scanf("%s", &option);
			if(option[0]>='0'&&option[0]<='9'){
				break;
			}
			else{
				printf("输入错误，重新输入0-9\n");
			}
		}
		int op;
		op = option[0]-'0';
		system("cls");
		switch(op)
		{
			case 0:
			{
				return ;
			}

			case 1:
			{
			    printf("录入数据\n");
			    void* (*pFunc)();//定义函数指针

			    printf("选择输入方式:\n 1:键盘输入;\n 2:文件输入;\n 0:取消输入:\n");

			    char choosed[0];

				while(1)
				{

					scanf("%s",choosed);
					if(choosed[0] >= '0' && choosed[0] <= '2'){
						break;
					}
					else{
						printf("输入错误，重新输入0-3\n");
					}
				}
  				int choose = choosed[0]-'0';

				if (choose == 0){
			   		break;
				}
				int a;
			    printf("输入职工个数：");
			    scanf("%d", &a);


			    if (choose == 1)
				{
			    	pFunc = InputEmployee;//调用函数指针

					AddAll(phead,  a,  pFunc);//添加链表结点指针，并赋值
				}
				else
				{
					read(phead, a);
				}

				break;
			}

			case 2:
			{ 
				printf("职工数据\n");
			
				void (*pFunc2)(void*data);
				pFunc2 = ShowEmployee;
				
				Traversal(phead, pFunc2);//遍历链表，输出链表其中的信息

				break;
			}
			
			case 3:
			{
				menu1(phead);
				
				break;
			}
			
			case 4:
			{
				printf("输入职工姓名：");
				char str[20];
				scanf("%s",str);
				
				Node* p = phead->next;
				while(p != NULL)
				{
					find_Employee(p->data, str);//调用函数
					p = p->next;
				}
				break;
			}
			
			case 5:
			{
				insertion_Employee(phead);//调用函数
			
				break;
			}
			case 6:
			{
				if(phead->next == NULL)
				{
					printf("删除失败！请重试");
					break;
				}

				printf("输入职工姓名：");
				char str[20];
				scanf("%s",str);
				
				delete_Employee(phead, str);//调用函数

				break;
			}
			case 7:
			{
				if(phead->next == NULL)
				{
					printf("修改失败！请重试");
					break;
				}

				printf("输入待修改职工姓名：");
				char str[20];
				scanf("%s",str);

				change_Employee(phead, str);//调用函数
				break;
			}
			case 8:
			{
				menu8(phead);
				break;
			}
			case 9:
			{
				menu9(phead);
				break;
			}
			default:
			printf("输入错误，重新输入0-9\n");
			system("pause");
			continue;
	    }
	    system("pause");
    }

    return ;
}

